home *** CD-ROM | disk | FTP | other *** search
/ 8bitfiles.net/archives / archives.tar / archives / commodore-users-of-norman / CUON_09_(08-1984).d64 / home inventory (.txt) < prev    next >
Commodore BASIC  |  2019-04-13  |  7KB  |  229 lines

  1. 100 REM     --HOME INVENTORY--
  2. 110 :
  3. 120 DIMD$(300),V(300),L$(300)
  4. 130 GOSUB1920
  5. 140 PRINT"[147]  ENTER TODAY'S DATE (MO/DAY/YR)"
  6. 150 INPUTND$
  7. 160 PRINT"[147]"TAB(15)"MAIN INDEX"
  8. 170 PRINTTAB(7)"PRESS         TO":PRINTTAB(9)"1     ADD NEW ITEMS"
  9. 180 PRINTTAB(9)"2     DELETE AN ITEM":PRINTTAB(9)"3     CHANGE AN ITEM"
  10. 190 PRINTTAB(9)"4     VIEW A LOCATION":PRINTTAB(9)"5     VIEW ALL ITEMS"
  11. 200 PRINTTAB(9)"6     UPDATE VALUES":PRINTTAB(9)"7     PRINT INVENTORY"
  12. 210 PRINTTAB(9)"8     ARRANGE INVENTORY":PRINTTAB(9)"9     END THE SESSION"
  13. 220 GETX$:IFX$=""THEN220
  14. 230 X=VAL(X$):IFX<1ORX>9THEN220
  15. 240 PRINT"[147]"
  16. 250 ONXGOSUB460,670,770,1010,990,1190,1370,2300,2120:GOTO160
  17. 260 :
  18. 270 REM     --THIS ROUTINE USED BY PRINTING SUBROUTINE--
  19. 280 :
  20. 290 T$="KITCHEN":RETURN
  21. 300 T$="LIVING ROOM":RETURN
  22. 310 T$="DEN":RETURN
  23. 320 T$="SW BEDROOM":RETURN
  24. 330 T$="NE BEDROOM":RETURN
  25. 340 T$="E BEDROOM":RETURN
  26. 350 T$="SE BEDROOM":RETURN
  27. 360 T$="S BATHROOM":RETURN
  28. 370 T$="N BATHROOM":RETURN
  29. 380 T$="LAUNDRY":RETURN
  30. 390 T$="HALL CLOSETS":RETURN
  31. 400 T$="ATTIC":RETURN
  32. 410 T$="PATIO":RETURN
  33. 420 T$="WORKSHOP":RETURN
  34. 430 :
  35. 440 REM     --ADD NEW ITEMS--
  36. 450 :
  37. 460 FORI=N+1TO300:PRINT"ENTER DATA FOR RECORD NO.";N+1
  38. 470 PRINT"ITEM DESCRIPTION  (MAX 60 CHARACS)"
  39. 480 PRINT"    (USE NO COMMAS OR COLONS)"
  40. 490 INPUTD$(I)
  41. 500 PRINT"ITEM VALUE   (NEAREST WHOLE DOLLAR)"
  42. 510 INPUTV(I)
  43. 520 PRINT"ITEM LOCATION (ENTER ONE OF FOLLOWING)"
  44. 530 PRINT"KITCHEN       LIVING ROOM   DEN"
  45. 540 PRINT"SW BEDROOM    NE BEDROOM    E BEDROOM"
  46. 550 PRINT"SE BEDROOM    S BATHROOM    N BATHROOM"
  47. 560 PRINT"PATIO         WORKSHOP      ATTIC":PRINT"HALL CLOSETS";
  48. 570 PRINTTAB(14)"LAUNDRY"
  49. 580 INPUTT$:GOSUB2220:L$(I)=T$:N=N+1:PRINT"[147]ADD ANOTHER ITEM?   (Y/N)"
  50. 590 GETX$:IFX$<>"Y"ANDX$<>"N"THEN590
  51. 600 IFX$="N"THENRETURN
  52. 610 PRINT"[147]":NEXTI:PRINT"DATA FILE FULL...PRESS C TO CONTINUE"
  53. 620 GETX$:IFX$<>"C"THEN620
  54. 630 RETURN
  55. 640 :
  56. 650 REM     --DELETE AN ITEM--
  57. 660 :
  58. 670 PRINT"ENTER NUMBER OF ITEM TO BE DELETED"
  59. 680 PRINT"(REFER TO PRINTOUT FOR ITEM NUMBERS)"
  60. 690 INPUTX:IFX<1ORX>NTHEN690
  61. 700 FORK=XTON:D$(K)=D$(K+1):V(K)=V(K+1):L$(K)=L$(K+1):NEXTK:N=N-1
  62. 710 PRINT"ITEM HAS BEEN DELETED":PRINT"PRESS C TO CONTINUE"
  63. 720 GETX$:IFX$<>"C"THEN720
  64. 730 RETURN
  65. 740 :
  66. 750 REM     --CHANGE AN ITEM--
  67. 760 :
  68. 770 PRINT"ENTER NUMBER OF ITEM TO BE CHANGED"
  69. 780 PRINT"(REFER TO PRINTOUT FOR ITEM NUMBERS)"
  70. 790 INPUTX:IFX<1ORX>NTHEN790
  71. 800 PRINT"      PRESS     TO CHANGE"
  72. 810 PRINTTAB(8)"1     ITEM DESCRIPTION":PRINTTAB(8)"2     ITEM VALUE"
  73. 820 PRINTTAB(8)"3     ITEM LOCATION"
  74. 830 GETX$:IFX$<>"1"ANDX$<>"2"ANDX$<>"3"THEN830
  75. 840 K=VAL(X$):ONKGOSUB850,880,900:GOTO920
  76. 850 PRINT"PRESENT DESCRIPTION: ";D$(X)
  77. 860 PRINT"ENTER NEW DESCRIPTION"
  78. 870 INPUTD$(X):RETURN
  79. 880 PRINT"PRESENT VALUE: ";V(X)
  80. 890 PRINT"ENTER NEW VALUE":INPUTV(X):RETURN
  81. 900 PRINT"PRESENT LOCATION: ";L$(X)
  82. 910 PRINT"ENTER NEW LOCATION":INPUTT$:GOSUB2220:L$(X)=T$:RETURN
  83. 920 PRINT"[147]CHANGE OTHER ITEMS?   (Y/N)"
  84. 930 GETX$:IFX$<>"Y"ANDX$<>"N"THEN930
  85. 940 IFX$="N"THENRETURN
  86. 950 PRINT"[147]":GOTO770
  87. 960 :
  88. 970 REM     --VIEW A LOCATION OR ALL ITEMS--
  89. 980 :
  90. 990 IFN=0THEN1130
  91. 1000 T=0:FORI=1TON:GOTO1050
  92. 1010 PRINT"WHAT LOCATION?"
  93. 1020 INPUTT$:GOSUB2220:PRINT"[147]"
  94. 1030 IFN=0THEN1130
  95. 1040 T=0:FORI=1TON:IFL$(I)<>T$THEN1120
  96. 1050 PRINT"ITEM NO.";I;" VALUE:";V(I);" ";L$(I)
  97. 1060 PRINTTAB(6)LEFT$(D$(I),30):PRINTTAB(6)MID$(D$(I),31)"":T=T+1
  98. 1070 IFT<4THEN1120
  99. 1080 PRINT"PRESS C TO CONTINUE VIEWING":PRINT"PRESS R TO RETURN TO MAIN INDEX"
  100. 1090 GETX$:IFX$<>"C"ANDX$<>"R"THEN1090
  101. 1100 IFX$="R"THENRETURN
  102. 1110 T=0
  103. 1120 NEXTI
  104. 1130 PRINT"END OF FILE....PRESS C TO CONTINUE"
  105. 1140 GETX$:IFX$<>"C"THEN1140
  106. 1150 RETURN
  107. 1160 :
  108. 1170 REM     --UPDATE ALL VALUES--
  109. 1180 :
  110. 1190 PRINT"DO YOU WANT TO INCREASE VALUES?  (Y/N)"
  111. 1200 GETX$:IFX$<>"Y"ANDX$<>"N"THEN1200
  112. 1210 PRINT"BY WHAT PERCENT (INTEGER) DO YOU WANT   THE VALUES ";
  113. 1220 IFX$="Y"THENPRINT"INCREASED?":GOTO1240
  114. 1230 PRINT"DECREASED?"
  115. 1240 INPUTC:C=C/100:IFX$="N"THENC=1-C:GOTO1260
  116. 1250 C=1+C
  117. 1260 PRINTTAB(2)"[147]PLEASE WAIT....UPDATING VALUES"
  118. 1270 FORI=1TON:V(I)=V(I)*C
  119. 1280 X=INT(V(I)):Y=V(I)-X:IFY>.5THENX=X+1
  120. 1290 V(I)=X:NEXTI:RETURN
  121. 1300 :
  122. 1310 REM     --PRINT INVENTORY--
  123. 1320 :
  124. 1330 IFV(I)<10THENPRINT#4,CHR$(16)"75"V(I):RETURN
  125. 1340 IF V(I)<100THENPRINT#4,CHR$(16)"74"V(I):RETURN
  126. 1350 IF V(I)<1000THENPRINT#4,CHR$(16)"73"V(I):RETURN
  127. 1360 PRINT#4,CHR$(16)"72"V(I):RETURN
  128. 1370 PRINT" PRESS          TO PRINT"
  129. 1380 PRINT"   1     TOTAL INVENTORY BY ITEM"
  130. 1390 PRINT"   2     TOTAL INVENTORY BY LOCATION"
  131. 1400 PRINT"   3     SINGLE LOCATION INVENTORY"
  132. 1410 PRINT"   4     VALUE SUMMARY BY LOCATION"
  133. 1420 PRINT"   5     RETURN TO MAIN INDEX"
  134. 1430 GETP$:IFP$=""THEN1430
  135. 1440 P=VAL(P$):IFP<1ORP>5THEN1430
  136. 1450 IF P=5THENRETURN
  137. 1460 ONPGOSUB1470,1540,1490,1600:RETURN
  138. 1470 GOSUB1860:GOSUB1760:GOSUB1870:GOSUB1810:OPEN4,4:FORI=1TON
  139. 1480 PRINT#4,I;CHR$(16)"11"D$(I);:GOSUB1330:NEXTI:CLOSE4:RETURN
  140. 1490 PRINT"[147]WHICH LOCATION?":INPUTT$:GOSUB2220:GOSUB1860:GOSUB1760:OPEN4,4
  141. 1500 PRINT#4,CHR$(16)"27INVENTORY OF "T$" ONLY":PRINT#4:PRINT#4:CLOSE4
  142. 1510 GOSUB1810:OPEN4,4:FORI=1TON
  143. 1520 IFL$(I)=T$THENPRINT#4,I;CHR$(16)"11"D$(I);:GOSUB1330
  144. 1530 NEXTI:CLOSE4:RETURN
  145. 1540 GOSUB1860:GOSUB1760:FORK=1TO14
  146. 1550 ONKGOSUB290,300,310,320,330,340,350,360,370,380,390,400,410,420
  147. 1560 OPEN4,4:GOSUB1840:PRINT#4
  148. 1570 CLOSE4:GOSUB1810:OPEN4,4:FORI=1TON
  149. 1580 IFL$(I)=T$THENPRINT#4,I;CHR$(16)"11"D$(I);:GOSUB1330
  150. 1590 NEXTI:PRINT#4:PRINT#4:PRINT#4:CLOSE4:NEXTK:RETURN
  151. 1600 GOSUB1860:GOSUB1760:OPEN4,4
  152. 1610 PRINT#4,CHR$(14)CHR$(16)"19CONTENTS VALUE SUMMARY"CHR$(15):PRINT#4
  153. 1620 PRINT#4:PRINT#4,CHR$(16)"23LOCATION";CHR$(16)"43TOTAL VALUE":PRINT#4
  154. 1630 FORK=1TO14
  155. 1640 ONKGOSUB290,300,310,320,330,340,350,360,370,380,390,400,410,420
  156. 1650 Z=0:FORI=1TON:IFL$(I)=T$THENZ=Z+V(I)
  157. 1660 NEXTI:ZT=ZT+Z
  158. 1670 PRINT#4,CHR$(16)"23"T$;:GOSUB1680:NEXT:Z=ZT:GOTO1730
  159. 1680 IFZ<10THENPRINT#4,CHR$(16)"48"Z:RETURN
  160. 1690 IFZ<100THENPRINT#4,CHR$(16)"47"Z:RETURN
  161. 1700 IFZ<1000THENPRINT#4,CHR$(16)"46"Z:RETURN
  162. 1710 IFZ<10000THENPRINT#4,CHR$(16)"45"Z:RETURN
  163. 1720 PRINT#4,CHR$(16)"44"Z:RETURN
  164. 1730 PRINT#4,CHR$(16)"44[163][163][163][163][163][163][163][163][163]"
  165. 1740 PRINT#4,CHR$(16)"23TOTAL HOME"CHR$(16)"43$";:GOSUB1680
  166. 1750 PRINT#4:PRINT#4:CLOSE4:Z=0:ZT=0:RETURN
  167. 1760 OPEN4,4:FORJ=1TO3:PRINT#4:NEXT
  168. 1770 PRINT#4,CHR$(14)"    INVENTORY OF 4216 NW 51ST STREET"
  169. 1780 PRINT#4,"     OKLAHOMA CITY, OKLAHOMA  73112"
  170. 1790 PRINT#4,"      WILLIAM P. AND MARY J.CANNON"
  171. 1800 PRINT#4:PRINT#4:PRINT#4,CHR$(15)OD$:PRINT#4:PRINT#4:CLOSE4:RETURN
  172. 1810 OPEN4,4:PRINT#4,"MASTER"CHR$(16)"69REPLACEMENT"
  173. 1820 PRINT#4,"ITEM NO"CHR$(16)"34DESCRIPTION"CHR$(16)"73VALUE"
  174. 1830 PRINT#4:CLOSE4:RETURN
  175. 1840 PRINT#4,TAB(40-LEN(T$));:PRINT#4,CHR$(14)T$CHR$(15):PRINT#4,TAB(40-LEN(T$))
  176. 1850 FORL=1TOLEN(T$):PRINT#4,CHR$(14)CHR$(163)CHR$(15);:NEXTL:RETURN
  177. 1860 PRINT"[147]   PLEASE WAIT....PRINTER WORKING":RETURN
  178. 1870 OPEN4,4:PRINT#4,TAB(25)"MASTER INVENTORY - ENTIRE HOME"
  179. 1880 PRINT#4,TAB(25)"[163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163]":PRINT#4:CLOSE4:RETURN
  180. 1890 :
  181. 1900 REM     --LOAD DATA FILE--
  182. 1910 :
  183. 1920 PRINT"[147]  PLEASE WAIT....LOADING DATA FILE"
  184. 1930 OPEN 15,8,15:OPEN4,8,4,"0:INV,S,R"
  185. 1940 INPUT#15,EN,EM$,ET,ES:IFEN=0THEN1960
  186. 1950 CLOSE4:CLOSE15:GOTO1980
  187. 1960 INPUT#4,N,OD$:IFN=0THEN1950
  188. 1970 FORI=1TON:INPUT#4,D$(I),V(I),L$(I):NEXTI:CLOSE4:CLOSE15
  189. 1980 PRINT"[147]":PRINTTAB(6)"THE DATA FILE HAS";N;"RECORDS"
  190. 1990 PRINTTAB(9)"PRESS C TO CONTINUE"
  191. 2000 GETX$:IFX$<>"C"THEN2000
  192. 2010 RETURN
  193. 2020 :
  194. 2030 REM     --SAVE DATA FILE--
  195. 2040 :
  196. 2050 PRINTTAB(3)"PLEASE WAIT....SAVING DATA FILE"
  197. 2060 OPEN4,8,4,"@0:INV,S,W"
  198. 2070 PRINT#4,N:PRINT#4,OD$:FORI=1TON
  199. 2080 PRINT#4,D$(I):PRINT#4,V(I):PRINT#4,L$(I):NEXTI:CLOSE4:RETURN
  200. 2090 :
  201. 2100 REM     --END THE SESSION--
  202. 2110 :
  203. 2120 PRINT"HAVE RECORDS BEEN CHANGED OR ADDED"
  204. 2130 PRINT"DURING THIS SESSION?    (Y/N)"
  205. 2140 GETX$:IFX$<>"Y"ANDX$<>"N"THEN2140
  206. 2150 IFX$="N"THEN2170
  207. 2160 OD$=ND$:PRINT"[147]":GOSUB2050
  208. 2170 PRINT"[147]PROCESSING CEASED FOR ";CHR$(34);"HOME INVENTORY";CHR$(34)""
  209. 2180 PRINTTAB(12)"HAVE A HAPPY DAY!":END
  210. 2190 :
  211. 2200 REM     --TEST INPUT ROUTINE--
  212. 2210 :
  213. 2220 IFT$="KITCHEN"ORT$="LIVING ROOM"ORT$="DEN"ORT$="HALL CLOSETS"THENRETURN
  214. 2230 IFT$="NE BEDROOM"ORT$="E BEDROOM"ORT$="SE BEDROOM"ORT$="ATTIC"THENRETURN
  215. 2240 IFT$="S BATHROOM"ORT$="N BATHROOM"ORT$="LAUNDRY"THENRETURN
  216. 2250 IFT$="PATIO"ORT$="WORKSHOP"ORT$="SW BEDROOM"THEN RETURN
  217. 2260 INPUTT$:GOTO2220
  218. 2270 :
  219. 2280 REM     --ARRANGE INVENTORY IN DESCENDING ORDER OF VALUES--
  220. 2290 :
  221. 2300 PRINT"":PRINTTAB(4)"PLEASE WAIT....COMPUTER THINKING":B=1
  222. 2310 B=2*B:IFB<NTHEN2310
  223. 2320 B=INT(B/2):IFB=0THENRETURN
  224. 2330 FORY=1TON-B:X=Y
  225. 2340 I=X+B:IFV(X)=>V(I)THEN2370
  226. 2350 N$=D$(X):D$(X)=D$(I):D$(I)=N$:T=V(X):V(X)=V(I):V(I)=T:N$=L$(X):L$(X)=L$(I)
  227. 2360 L$(I)=N$:X=X-B:IFX>0THEN2340
  228. 2370 NEXTY:GOTO2320
  229.